package com.dd.cloud.user.service.doctor;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.doctor.PatientMedCardStudy;
import com.dd.cloud.user.req.aicms.AskDoctorParamsReq;
import com.dd.cloud.user.req.doctor.*;
import com.dd.cloud.user.req.pres.PresPatientReq;
import com.dd.cloud.user.res.doctor.PatientMedCardMobPageRes;
import com.dd.cloud.user.res.doctor.PatientMedCardPageRes;
import com.dd.cloud.common.vo.LoginInfo;

/**
 * @author Lx
 * @version 1.0
 */
public interface IPatientMedCardStudyService extends IService<PatientMedCardStudy> {
    /**
     * 添加患者病历卡信息
     *
     * @param req
     * @return
     */
    void addPatientMedCardStudy(PatientMedCardCreateReq req);

    /**
     * 添加患者病历卡信息
     *
     * @param req
     */
    void addPatientMedCardH5Study(PatientMedCardH5CreateReq req);

    /**
     * 修改就诊卡
     *
     * @param req
     * @return
     */
    void updateMedCardStudy(PatientMedCardUpdateReq req);

    /**
     * 修改就诊卡状态
     *
     * @param id
     * @param status
     * @return
     */
    void updateMedCardStatusStudy(Integer id, Integer status);

    /**
     * 智能开方添加或修改就诊卡信息学习模式
     *
     * @param req
     */
    void aicmsSaveOrUpdateMedCard(AskDoctorParamsReq req);

    /**
     * 分页查询患者病历卡信息
     *
     * @param req
     * @return
     */
    IPage<PatientMedCardPageRes> selPatientMedCardStudy(ParamsMedCardReq req);

    /**
     * 分页查询患者病历卡信息
     *
     * @param req
     * @return
     */
    IPage<PatientMedCardMobPageRes> selPatientMedCardMobPageStudy(ParamsMedCardMobPageReq req);

    /**
     * 生成处方生成患者信息
     *
     * @param patientReq
     * @param loginInfo
     * @return
     */
    PatientMedCardStudy addPresGeneratePatientInfo(PresPatientReq patientReq, LoginInfo loginInfo);
}
